package main

import (
	"log"

	"github.com/gin-gonic/gin"
	"gorm.io/driver/sqlite"
	"gorm.io/gorm"
)

type User struct {
	// 登录建议使用微信或者QQ
}

type Link struct {
	gorm.Model

	Name  string // 网址名字
	Url   string // 链接地址
	ImgId int64  // 小图标的id
}

var db *gorm.DB
var err error

func main() {

	db, err = gorm.Open(sqlite.Open("go-navigation.db"), &gorm.Config{})
	if err != nil {
		panic("failed to connect database")
	}

	// 迁移 schema
	db.AutoMigrate(&Link{})

	r := gin.Default()
	apiGroup := r.Group("api")
	v1Group := apiGroup.Group("v1")
	v1Group.GET("/navigation/:id", show) //根据id获取翻译文本

	v2Group := apiGroup.Group("v2")
	v2Group.GET("/notice", notice) // 通过用户tel查询翻译的内容

	_ = r.Run(":8888")
}

func notice(c *gin.Context) {
	c.JSON(200, gin.H{"message": "用户通知和协议内容", "data": nil})
}

func show(c *gin.Context) {

	id := c.Param("id")
	if len(id) == 0 {
		c.JSON(400, gin.H{"message": "invalid Param"})
		c.Abort()
	}
	var link Link
	var result *gorm.DB
	//id查询
	result = db.First(&link, id)

	if result.Error != nil {
		log.Print(result.Error)
		c.JSON(500, gin.H{"message": result.Error.Error()})
		return
	}

	c.JSON(200, gin.H{"message": "用户通知和协议内容", "data": link})
}
